Role-based-access-control (RBAC) is a policy-neutral access control mechanism defined around roles and privileges. RBAC can be used to facilitate administration of security in large organizations with hundreds of users and thousands of permissions.
Role-based access control (RBAC) provides the facility to delegate duties and improves the security of a system because of the ease of auditing and tracking of activities on the system, such as by providing a mechanism to split various functions of a super user root into roles that can be delegated to other users on a system. Although RBAC provide delegation of responsibility to another user (referred as an “authorized user”), it does not provide a mechanism to limit the administrative rights of an authorized user to specific resources of the system. For example, a user that has network administrative rights is able manage every network interface on the system.
In an RBAC system, a “subject” is an entity that requests access to an object (e.g., process, user, etc.). An “object” in an RBAC system is an entity that holds information of value, such as files, devices, and network ports. A “domain” in an RBAC system is defined as a category to which an entity belongs. RBAC includes a feature to restrict access to authorized users by attaching domain tags to users and resources in the system. The specific access rules determine access to resources by the users. When a subject belongs to two or more domains, and those domains contain unique objects, RBAC does not restrict a subject to execute an operation between the objects in the two different domains. For example, if a subject S1 belongs to domain D1 and D2 that include objects O1 and O4. respectively, the subject S1 may perform operations between O1 and O4 without restriction.